<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <title>YApi 接口管理平台 内网部署</title>
    
        <meta name="keywords" content="api管理,接口管理,接口文档,api文档">
    
    
        <meta name="description" content="YApi 是高效、易用、功能强大的 api 管理平台，旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API，YApi 还为用户提供了优秀的交互体验，开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。">
    

    <link rel="shortcut icon" href="./images/favicon.ico" />
    <link rel="stylesheet" href="source/main.css" />
    
    
      
      <link rel="stylesheet" href="styles/theme.css" />
      
    
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
    <meta name="format-detection" content="telephone=no,email=no" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge, chrome=1">
</head>
<body>
    <div class="ydoc">
        <header class="ydoc-header">
            <div class="ydoc-header-area">
                
                <a href="./index.html" class="navbar-brand"><img src="./images/logo_header@2x.png" /> &nbsp;YAPI</a>
                
                <button class="ydocIcon navbar-toggle">&#xf020;</button>
                <nav class="ydoc-nav">
                    <ul class="navbar-left">
                         
                        <li class="">
                            
                            <a href="index.html"></a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="usage.html">使用手册</a> 
                        </li>
                        
                        <li class="active">
                            
                            <a href="devops.html">内网部署</a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="plugin.html">插件 Wiki</a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="qa.html">常见问题</a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="releases.html">版本记录</a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="http://yapi.demo.qunar.com/" target="_blank">demo 站点</a> 
                        </li>
                        
                        <li class="">
                            
                            <a href="api.html"></a> 
                        </li>
                         
                    </ul>
                </nav>
            </div>
        </header>
        
        <!-- <header style="height:20px"></header> -->
        
        <!-- Docs page layout -->
        
        <div class="ydoc-banner-bg">
            <div class="ydoc-banner ">
                <div class="ydoc-banner-area">
                    <h1 >内网部署</h1>
                    <p class="desc ">部署 YApi 平台是非常容易的，即便您不懂 nodejs 或者 mongodb</p>
                    
                </div>
            </div>
            

            <div class="ydoc-container">
                 
                <div class="ydoc-container-content ">
                    
                    
                    <div class="content-left staticsidenav" role="complementary">
                        <nav class="docs-sidebar hidden-print hidden-xs hidden-sm">
                            <ul class="nav docs-sidenav">
                                 
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#环境要求">环境要求</a> 
                                </li>
                                  
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#安装">安装</a> 
                                </li>
                                   
                                <ul class="nav docs-sidenav-extend"  >
                                
                                    <li >
                                        <a href="#方式一._可视化部署[推荐]">方式一. 可视化部署[推荐]</a>
                                    </li>
                                     
                                    <li >
                                        <a href="#方式二._命令行部署">方式二. 命令行部署</a>
                                    </li>
                                
                                </ul>
                                            
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#服务器管理">服务器管理</a> 
                                </li>
                                  
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#升级">升级</a> 
                                </li>
                                  
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#配置邮箱__仅支持_SMTP_">配置邮箱 (仅支持 SMTP)</a> 
                                </li>
                                  
                                <!-- <li  > -->
                                <li >
                                    
                                    <a href="#配置LDAP登录">配置LDAP登录</a> 
                                </li>
                                 
                            </ul>
                        </nav>
                    </div>
                    
                    <div class="content-right markdown-body use-sidebar" role="main">

                         <h1 class="subject" id="内网部署">内网部署 <a class="hashlink" href="#内网部署">#</a></h1><p>使用我们提供的 yapi-cli 工具，部署 YApi 平台是非常容易的。建议部署成 http 站点，因 chrome 浏览器安全限制，部署成 https 会导致测试功能在请求 http 站点时文件上传功能异常。</p>
<p>如果您是将服务器代理到 nginx 服务器，请配置 nginx 支持 websocket。</p>
<pre><code>在location /添加
proxy_http_version <span class="token number">1.1</span><span class="token punctuation">;</span>
proxy_set_header Upgrade $http_upgrade<span class="token punctuation">;</span>
proxy_set_header Connection <span class="token string">"upgrade"</span><span class="token punctuation">;</span>
</code></pre><h2 class="subject" id="环境要求">环境要求 <a class="hashlink" href="#环境要求">#</a></h2><ul>
<li>nodejs（7.6+)</li><li>mongodb（2.6+）</li></ul>
<h2 class="subject" id="安装">安装 <a class="hashlink" href="#安装">#</a></h2><h3 class="subject" id="方式一._可视化部署[推荐]">方式一. 可视化部署[推荐] <a class="hashlink" href="#方式一._可视化部署[推荐]">#</a></h3><p>执行 yapi server 启动可视化部署程序，输入相应的配置和点击开始部署，就能完成整个网站的部署。部署完成之后，可按照提示信息，执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱，默认密码(ymfe.org) 登录系统（默认密码可在个人中心修改）。</p>
<pre><code>npm install -g yapi-cli --registry https<span class="token operator">:</span>//registry.npm.taobao.org
yapi server
</code></pre><h3 class="subject" id="方式二._命令行部署">方式二. 命令行部署 <a class="hashlink" href="#方式二._命令行部署">#</a></h3><p>如果 github 压缩文件无法下载，或需要部署到一些特殊的服务器，可尝试此方法</p>
<pre><code>mkdir yapi
cd yapi
git clone https<span class="token operator">:</span>//github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https<span class="token operator">:</span>//registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号，管理员账号名可在 config.json 配置
node server/app.js //启动服务器后，请访问 <span class="token number">127.0</span>.<span class="token number">0.1</span><span class="token operator">:</span><span class="token punctuation">{</span>config.json配置的端口<span class="token punctuation">}</span>，初次运行会有个编译的过程，请耐心等候
</code></pre><h2 class="subject" id="服务器管理">服务器管理 <a class="hashlink" href="#服务器管理">#</a></h2><p>推荐使用 pm2 管理 node 服务器启动，停止，具体使用方法可参考下面的教程：</p>
<ul>
<li><a href="http://pm2.keymetrics.io/docs/usage/quick-start/">官网文档</a></li><li><a href="http://imweb.io/topic/57c8cbb27f226f687b365636">PM2实用入门指南</a> </li></ul>
<h2 class="subject" id="升级">升级 <a class="hashlink" href="#升级">#</a></h2><p>升级项目版本是非常容易的，并且不会影响已有的项目数据，只会同步 vendors 目录下的源码文件。</p>
<pre><code>cd  <span class="token punctuation">{</span>项目目录<span class="token punctuation">}</span>
yapi ls //查看版本号列表
yapi update //升级到最新版本
yapi update -v v1<span class="token number">.1</span>.<span class="token number">0</span> //升级到指定版本
</code></pre><h2 class="subject" id="配置邮箱__仅支持_SMTP_">配置邮箱 (仅支持 SMTP) <a class="hashlink" href="#配置邮箱__仅支持_SMTP_">#</a></h2><p>打开项目目录 config.json 文件，新增 mail 配置， 替换默认的邮箱配置</p>
<pre><code><span class="token punctuation">{</span>
  <span class="token property">"port"</span><span class="token operator">:</span> <span class="token string">"*****"</span><span class="token punctuation">,</span>
  <span class="token property">"adminAccount"</span><span class="token operator">:</span> <span class="token string">"********"</span><span class="token punctuation">,</span>
  <span class="token property">"db"</span><span class="token operator">:</span> <span class="token punctuation">{</span>...<span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token property">"mail"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
    <span class="token property">"enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
    <span class="token property">"host"</span><span class="token operator">:</span> <span class="token string">"smtp.163.com"</span><span class="token punctuation">,</span>    //邮箱服务器
    <span class="token property">"port"</span><span class="token operator">:</span> <span class="token number">465</span><span class="token punctuation">,</span>               //端口
    <span class="token property">"from"</span><span class="token operator">:</span> <span class="token string">"***@163.com"</span><span class="token punctuation">,</span>     //发送人邮箱
    <span class="token property">"auth"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
        <span class="token property">"user"</span><span class="token operator">:</span> <span class="token string">"***@163.com"</span><span class="token punctuation">,</span> //邮箱服务器账号
        <span class="token property">"pass"</span><span class="token operator">:</span> <span class="token string">"*****"</span>        //邮箱服务器密码
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre><h2 class="subject" id="配置LDAP登录">配置LDAP登录 <a class="hashlink" href="#配置LDAP登录">#</a></h2><p>打开项目目录 config.json 文件，添加如下字段：   </p>
<pre><code><span class="token property">"ldapLogin"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
      <span class="token property">"enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
      <span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"ldap://l-ldapt1.ops.dev.cn0.qunar.com"</span><span class="token punctuation">,</span>
      <span class="token property">"baseDn"</span><span class="token operator">:</span> <span class="token string">"CN=Admin,CN=Users,DC=test,DC=com"</span><span class="token punctuation">,</span>
      <span class="token property">"bindPassword"</span><span class="token operator">:</span> <span class="token string">"password123"</span><span class="token punctuation">,</span>
      <span class="token property">"searchDn"</span><span class="token operator">:</span> <span class="token string">"OU=UserContainer,DC=test,DC=com"</span><span class="token punctuation">,</span>
      <span class="token property">"searchStandard"</span><span class="token operator">:</span> <span class="token string">"mail"</span>
   <span class="token punctuation">}</span>
</code></pre><p>这里面的配置项含义如下：  </p>
<ul>
<li><code>enable</code> 表示是否配置LDAP登录，true(支持LDAP登录)/false(不支持LDAP登录);</li><li><code>server</code> LDAP服务器地址，前面需要加上 ldap:// 前缀，也可以是ldaps:// 表示是通过SSL连接;</li><li><code>baseDn</code> LDAP服务器的登录用户名，必须是从根结点到用户节点的全路径;</li><li><code>bindPassword</code> 登录该LDAP服务器的密码;</li><li><code>searchDn</code> 查询用户数据的路径，类似数据库中的一张表的地址，注意这里也必须是全路径;</li><li><code>searchStandard</code> 查询条件，这里是mail表示查询用户信息是通过邮箱信息来查询的。注意，该字段信息与LDAP数据库存储数据的字段相对应，如果如果存储用户邮箱信息的字段是email,  这里就需要修改成email.</li></ul>
<p><br><br><br><br><br></p>

                    </div>
                </div>
                 
            </div>
            
        </div>
        
        <footer class="footer">
            <div class="copyright">
                &copy; 2017 <a href="https://ymfe.org">YMFE</a> Team. Build by <a href="http://ued.qunar.com/ydoc/">ydoc</a>&nbsp;
            </div>
        </footer>
    </div>

    
    <div class="open-panel"></div>
    <div class="mask"></div>
     

    <script src="source/main.js"></script>
    <script src="source/app.js"></script>
        

    </body>

</html>
